@CLASS
pfStackTests

@USE
pf/tests/pfTestCase.p

@BASE
pfTestCase

@create[aTestName]
  ^BASE:create[$aTestName]

@setUp[]
  ^use[pf/collections/pfStack.p]
  $st[^pfStack::create[]]

@pushTest[][res]
  ^st.push[1]
  ^st.push[2]
  ^st.push[3]
  ^st.push[4]
  ^st.push[5]
  ^st.push[6]
  ^st.push[7]

  $res[^st.foreach[it]{$it}[|]]
  ^pfAssert:isTrue($res eq "7|6|5|4|3|2|1")[Неверный результат итератора: "$res"]

@popTest[][res]
  ^st.push[1]
  ^st.push[2]
  ^st.push[3]
  ^st.push[4]
  ^st.push[5]
  ^st.push[6]
  ^st.push[7]

  ^st.pop[]
  ^st.pop[]
  ^st.pop[]

  $res[^st.foreach[it]{$it}[|]]
  ^pfAssert:isTrue($res eq "4|3|2|1")[Неверный результат итератора: "$res"]

@peekTest[][res]
  ^st.push[1]
  ^st.push[2]
  ^st.push[3]
  ^st.push[4]
  ^st.push[5]
  ^st.push[6]
  ^st.push[7]

  ^st.pop[]
  ^st.pop[]
  ^st.pop[]

  ^pfAssert:isTrue(^st.peek[] eq "4")[Неверный результат: "^st.peek[]"]

